home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Scope
/
Scope Disk #112 (199x)(Scope PD)(US)[WB].zip
/
Scope Disk #112 (199x)(Scope PD)(US)[WB].adf
/
Xicon
/
README
< prev
next >
Wrap
Text File
|
1990-01-22
|
9KB
|
199 lines
-- Xicon 2.5 --
December 1989
It's been more than three years since I originally wrote Xicon (July 1986),
and until last year it was essentially the only program to provide a means
of running a CLI command script from an icon. With Commodore's own IconX,
it finally has some competition. The previous version of Xicon -- 2.01 --
has a number of features that are missing from IconX, but, equally well,
IconX has a couple of very useful options that I had always wanted in Xicon
but never could figure out a neat way to do. Spurred on by the example
placed in front of me, I finally got my act together and put the missing
features in. Xicon 2.5 does everything IconX does, and still has all its
old features (including one or two -- like LOCDIR -- that are a bit
redundant now).
For many straightforward applications IconX can now supplant Xicon, but
I think Xicon is still a worthwhile alternative -- despite being twice
the size of IconX -- because it has some tricks of its own that aren't
available otherwise. In particular, there is its unique ability to have
the icon attached NOT to a script file directly but to another type of
object, say a directory that contains -- as well as the script -- a whole
package of files. In this case the script is referenced by a ToolType
entry in the icon itself. Alternatively, the script to be executed could
be in some other drawer entirely; or you could run several scripts in
different drawers from one icon. (Under WorkBench 1.3, in fact, you now
don't need anything at ALL attached to the icon, so you can control
everything with ToolTypes if you want.)
Then there is the (somewhat rudimentary, I concede...) facility for
displaying a text file directly, or even displaying some text directly from
the icon file itself. Xicon gives you a Close gadget to exit rather than a
predetermined delay, and you can take differing actions depending on
whether the user has aborted the sequence or not. Not only can you control
the size of the window, but you can change its title; you can even dispense
with a window altogether if the script isn't going to generate any useful
output.
Drawer Contents
===============
This package is considerably streamlined from previous releases. I haven't
even included sources this time (though if you really want them I'm sure it
can be arranged...). The only examples I've included are the three icons
you see -- Xicon itself and the two texts. You might want to look at the
ToolTypes of these to see how an icon/file pair can be made to do several
things, even without any "script" at all.
The Xicon one, for example, in addition to displaying information -- if
available --, now gives you the option of installing Xicon in your C:
directory. You will see also that it checks to see if the informational
text is available, and if not just displays a brief apology and proceeds.
Manual Update
=============
The accompanying manual has been revised to match the new features, but
for those already familiar with the program, I'm including a summary of
the new stuff here.
[++ By the way, to avoid confusion, when I refer (above and below) to the
script or other file "attached" to the icon, I mean the file in the same
directory that has the same name as the icon sans ".info". ++]
* Current Directory setting:
The most important new feature is that the "current directory" is now set
to that containing the icon clicked on, before the script (either in the
same directory or elsewhere) is executed. This eliminates the need for
the LOCDIR ToolType hack, although it is left in this version so that
scripts expecting it don't break.
The current directory is set before each script (if there is more than one).
It is also set before executing any command line specified directly in a
"CMD=..." ToolType.
* Scripts with Conditional Commands and Parameters:
It is now possible to invoke scripts that contain conditional DOS commands
(IF, ELSE, etc). To do this, Xicon needs to have the EXECUTE command
available in the C: directory (as well as the RUN command, which it has
always needed). The FIRST character of a script that contains conditional
commands (at least if it is directly attached to the icon), must be a
period ".". This may be the first character of a ".KEY..." script directive
(see below) or sometimes you can simply use a period by itself on the line.
If you intend to use EXECUTE, and don't actually have any .KEY parameters,
it will probably still save you a lot of grief to simply use a dummy
directive of the form:
.K ""
where the "" supplies a null parameter that EXECUTE will ignore. Otherwise
a "<" character occurring ANYWHERE in your script (even in a comment!) will
cause EXECUTE to complain "No .K directive". [Just one more of the Amazing
features of DOS...]
If the first character of an attached script is NOT a period, Xicon runs
the sequence of commands directly, just as it always has.
You can also invoke EXECUTE on any script through a ToolType entry:
EXECUTE=scriptname arg1 arg2....
where 'scriptname' is the script file you wish to run (given as a full
pathname if it is not in the same directory as the icon), and 'arg1' etc
are optional arguments (parameters) to pass to the script -- if it has
a suitable '.KEY' directive to accept them (see your DOS manual under
'EXECUTE').
The "EXECUTE=..." ToolType is in addition to the old "SCRIPT=..." one, which
operates as it always has -- i.e. it NEVER uses EXECUTE (even if the script
begins with a period). On the other hand, "EXECUTE=..." doesn't require
that initial period, so you can run Shell scripts (that might have
conditional commands but no .KEY directive, perhaps) without changing them.
In parallel to the "ABORT-SCRIPT=..." ToolType there is "ABORT-EXECUTE...".
[As an aside for the adventurous, there is no reason why a "script"
referenced by a ToolType could not in fact be a Pipe, filled by previous
actions! Maybe you can think of an application...]
* Icons as Parameters to a Script:
It is also possible to pass parameters to the script attached to the icon
by "shift-clicking" on several icons in sequence. The rule here is that
the FIRST icon selected must be attached to a suitable script file (with
a ".KEY" directive); the following files (and their icons) may be of any
type: only the file names (in FULL pathname form) will be passed to the
script as parameters.
Note that if the first script in a shift-clicked set does NOT have an
initial period, Xicon will simply run it and move on to the next; once it
finds one that it should pass to EXECUTE, it immediately passes all the
remaining items in the set as parameters (without trying to run them).
(It is not possible to pass shift-clicked icons to a script executed from
a ToolType.)
* Console Interaction:
Any script run via EXECUTE is also run in "interactive" mode. In other
words a command in it that expects input from the console will wait for
it properly. This was hard to arrange in earlier versions of Xicon: you
had to resort to tricks like opening a special input window. [Actually a
new CLI is being created for this, and terminated when done. If the script
fails, it can dump you into this CLI (and you will see a standard prompt).
(This is also a possibility in IconX, by the way.) If this happens, simply
type "endcli" to get out; you'll have to click on the close gadget as well,
of course, if the icon doesn't have 'MODE=closewindow'.]
Unfortunately nothing ever seems to be entirely free. If any program
invoked by the script accesses the console for input, this also diverts
access away (permanently) from Xicon, meaning that you can no longer
close the window with control-C. You still have the Close gadget, of
course, or you can set MODE=closewindow to terminate automatically.
In some cases also it seems that programs run in this mode may not
pick up a control-C abort themselves , so you STILL may have to use
special tricks. Sorry.
+ + +
About the only other advance in this version is that the code is
considerably shorter. This isn't the result of tightened up source,
but simply the much improved code generation of Lattice 5.0, especially
the direct system calls. Thanks, JT!
[By the way, if this package is still in its original form, you will of
course have noticed the program ("Most") used to display this text. It is
an Australian program, sent to me on "MegaDisc" -- their own, very nice,
disk magazine. You can find details in the "About" Menu of the program.
...And -- if "Most" is missing, you will be viewing the text through
Xicon's own primitive mechanism. You might want to take a look at the
ToolTypes in the icons to see how some of Xicon's unique features are
used. In case you were doubtful, Most can itself of course be a Default
Tool for a text's Project icon, but in this case, I wanted to demonstrate
Xicon's ability to take remedial action if the environment is not correct.]
Pete Goodeve
December 1989